package flex.cc.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 
 * @author WANGCONG
 * 2021年9月7日下午5:17:33
 * @desc 时间工具类
 */
public class DateUtil {

	/**
	 * 
	 * @author WANGCONG
	 * 2021年9月7日下午5:18:24
	 * @desc 计算两个时间的分钟差
	 */
	public static int getIntervalFen(Date startDate, Date endDate) {
        if (null == startDate || null == endDate) {
            return -1;
        }
        long intervalMilli = endDate.getTime() - startDate.getTime();
        
        return (int) (intervalMilli / (60 * 1000));
     }
	
	/**
	*
	* @author WANGCONG
	* 2021年12月23日下午18:50:06
	* @desc 计算两个时间的秒差
	*/
	public static int getDateSecond(Date start, Date end){
        long millisecond = end.getTime() - start.getTime();
        long seconds = millisecond/1000;
        int second = Integer.parseInt(String.valueOf(seconds)); 
        return second;
     }
	/**
	 * 
	 * @author WANGCONG
	 * 2021年9月7日下午5:50:09
	 * @desc String转换成Date
	 */
	public static Date stringToDate(String d,String formatStr) {  
        if(null == d || "".equals(d)){
        	return null;
        }else{
        	DateFormat format = new SimpleDateFormat(formatStr);  
            Date date = null;  
            try {  
                date = format.parse(d);   
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
            return date;  
        }
    }
	
	/**
	 * 
	 * @author WANGCONG
	 * 2021年9月7日下午5:50:09
	 * @desc String转换成Date
	 */
	public static String DateToString(Date date){
    	String fmt = "yyyy-MM-dd HH:mm:ss";
		SimpleDateFormat sdf = new SimpleDateFormat(fmt);
		String dateStr = sdf.format(date);
		return dateStr;
		
    }
	
	/**
	 * 
	 * @author R
	 * 2021年12月16日 13:05:09
	 * @desc 将指定日期按照指定格式转换
	 */
	public static String DateToString(Date date,String fmt){
		SimpleDateFormat sdf = new SimpleDateFormat(fmt);
		String dateStr = sdf.format(date);
		return dateStr;
		
    }
	
	public static void main(String[] args) {
		Date startDate = new Date();
		Date endDate = new Date();
		Calendar cal = Calendar.getInstance();  
	    cal.setTime(endDate);  
	    // 24小时制  
	    cal.add(Calendar.HOUR, 1);
	    endDate = cal.getTime();
		System.out.println(getIntervalFen(startDate,endDate));
	}
	
	/**
	*
	* @author WANGCONG
	* 2021年10月19日下午3:32:19
	* @desc 获取当天的0时0分0秒
	*/
	public static Date getFirstTime(){
		Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        return calendar.getTime();
	}
	
	
	/**
	*
	* @author R
	* 2022年02月08日 16:22:19
	* @desc 获取n天后的日期
	*/
	public static Date addDate(Date date,long day){

		long time = date.getTime(); // 得到指定日期的毫秒数

		day = day*24*60*60*1000; // 要加上的天数转换成毫秒数

		time+=day; // 相加得到新的毫秒数

		return new Date(time); // 将毫秒数转换成日期

	}
	
	/**
	 * @author R
	 * 2022年02月17日 16:22:19
	 * yyyy-MM-dd HH:mm:ss转换为yyyy-MM-dd
	 * @throws ParseException 
	 */
	public static String transferFormat(String inTime) throws ParseException{
		SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
		SimpleDateFormat s2 = new SimpleDateFormat("yyyy-MM-dd");
		Date tempDate =null;
		String outTime = null;
		tempDate = s1.parse(inTime);
		outTime = s2.format(s2.parse(s1.format(tempDate)));
		return outTime;
	}
}
